<!DOCTYPE html>
<html>
<head>
    

    

    



    <meta charset="utf-8">
    
    
    
    
    <title>nvm安装总结 | Mayner&#39;s Blog | Web前端技术沉淀</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    
    <meta name="theme-color" content="#3F51B5">
    
    
    <meta name="keywords" content="nvm,win10,node.js">
    <meta name="description" content="一直以来都在用 nvm 来管理我的 node 的版本，然而，最近在尝试入坑快应用时，使用 npm install -g hap-toolkit 安装快应用脚手架，接着查看版本号检测是否安装成功，输入 hap -V ，结果显示： &amp;#39;hap&amp;#39; 不是内部或外部命令，也不是可运行的程序或批处理文件。但进到 hap-toolkit 目录下运行 hap -V ，结果正常，想着应该是环境变量没配">
<meta name="keywords" content="nvm,win10,node.js">
<meta property="og:type" content="article">
<meta property="og:title" content="nvm安装总结">
<meta property="og:url" content="https://mayner.github.io/20180420/nvm-install.html">
<meta property="og:site_name" content="Mayner&#39;s Blog">
<meta property="og:description" content="一直以来都在用 nvm 来管理我的 node 的版本，然而，最近在尝试入坑快应用时，使用 npm install -g hap-toolkit 安装快应用脚手架，接着查看版本号检测是否安装成功，输入 hap -V ，结果显示： &amp;#39;hap&amp;#39; 不是内部或外部命令，也不是可运行的程序或批处理文件。但进到 hap-toolkit 目录下运行 hap -V ，结果正常，想着应该是环境变量没配">
<meta property="og:locale" content="zh-CN">
<meta property="og:image" content="https://mayner.github.io/20180420/nvm-install/1.png">
<meta property="og:image" content="https://mayner.github.io/20180420/nvm-install/2.png">
<meta property="og:image" content="https://mayner.github.io/20180420/nvm-install/4.png">
<meta property="og:image" content="https://mayner.github.io/20180420/nvm-install/5.png">
<meta property="og:image" content="https://mayner.github.io/20180420/nvm-install/6.png">
<meta property="og:image" content="https://mayner.github.io/20180420/nvm-install/7.png">
<meta property="og:updated_time" content="2018-04-24T03:19:53.766Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="nvm安装总结">
<meta name="twitter:description" content="一直以来都在用 nvm 来管理我的 node 的版本，然而，最近在尝试入坑快应用时，使用 npm install -g hap-toolkit 安装快应用脚手架，接着查看版本号检测是否安装成功，输入 hap -V ，结果显示： &amp;#39;hap&amp;#39; 不是内部或外部命令，也不是可运行的程序或批处理文件。但进到 hap-toolkit 目录下运行 hap -V ，结果正常，想着应该是环境变量没配">
<meta name="twitter:image" content="https://mayner.github.io/20180420/nvm-install/1.png">
    
        <link rel="alternate" type="application/atom+xml" title="Mayner&#39;s Blog" href="/atom.xml">
    
    <link rel="shortcut icon" href="/img/favicon.ico">
    <link rel="stylesheet" href="//unpkg.com/hexo-theme-material-indigo@latest/css/style.css">
    <script>window.lazyScripts=[]</script>

    <!-- custom head -->
    

</head>

<body>
    <div id="loading" class="active"></div>

    <aside id="menu"  >
  <div class="inner flex-row-vertical">
    <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="menu-off" style="left: 184px;">
        <i class="icon icon-lg icon-close"></i>
    </a>
    <div class="brand-wrap" style="background-image:url(/img/brand.jpg)">
      <div class="brand">
        <a href="/" class="avatar waves-effect waves-circle waves-light">
          <img src="/img/avatar.jpg">
        </a>
        <hgroup class="introduce">
          <h5 class="nickname">Mayner</h5>
          <a href="mailto:meiningzhu@163.com" title="meiningzhu@163.com" class="mail">meiningzhu@163.com</a>
        </hgroup>
      </div>
    </div>
    <div class="scroll-wrap flex-col">
      <ul class="nav">
        
            <li class="waves-block waves-effect">
              <a href="/"  >
                <i class="icon icon-lg icon-home"></i>
                Home
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="/archives"  >
                <i class="icon icon-lg icon-archives"></i>
                Archives
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="/tags"  >
                <i class="icon icon-lg icon-tags"></i>
                Tags
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="https://github.com/mayner" target="_blank" >
                <i class="icon icon-lg icon-github"></i>
                Github
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="/about"  >
                <i class="icon icon-lg icon-user"></i>
                About
              </a>
            </li>
        
      </ul>
    </div>
  </div>
</aside>

    <main id="main">
        <header class="top-header" id="header">
    <div class="flex-row">
        <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light on" id="menu-toggle">
          <i class="icon icon-lg icon-navicon"></i>
        </a>
        <div class="flex-col header-title ellipsis">nvm安装总结</div>
        
        <div class="search-wrap" id="search-wrap">
            <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="back">
                <i class="icon icon-lg icon-chevron-left"></i>
            </a>
            <input type="text" id="key" class="search-input" autocomplete="off" placeholder="输入感兴趣的关键字">
            <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="search">
                <i class="icon icon-lg icon-search"></i>
            </a>
        </div>
        
        
        <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="menuShare">
            <i class="icon icon-lg icon-share-alt"></i>
        </a>
        
    </div>
</header>
<header class="content-header post-header" style="padding-bottom: 0;">

    <div class="container fade-scale">
        <h1 class="title">nvm安装总结</h1>
        <h5 class="subtitle">
            
                <time datetime="2018-04-20T10:11:27.000Z" itemprop="datePublished" class="page-time">
  2018-04-20
</time>


            
        </h5>
    </div>

    


</header>


<div class="container body-wrap" style="min-height: calc(100vh - 210px);">
    
    <aside class="post-widget">
        <nav class="post-toc-wrap post-toc-shrink" id="post-toc">
            <h4>目录</h4>
            <ol class="post-toc"><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#nvm的作用"><span class="post-toc-number">1.</span> <span class="post-toc-text">nvm的作用</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#nvm的下载安装"><span class="post-toc-number">2.</span> <span class="post-toc-text">nvm的下载安装</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#npm的全局安装路径配置"><span class="post-toc-number">3.</span> <span class="post-toc-text">npm的全局安装路径配置</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#环境变量的配置"><span class="post-toc-number">4.</span> <span class="post-toc-text">环境变量的配置</span></a></li></ol>
        </nav>
    </aside>


<article id="post-nvm-install"
  class="post-article article-type-post fade" itemprop="blogPost">

    <div class="post-card">
        <h1 class="post-card-title">nvm安装总结</h1>
        <div class="post-meta">
            <time class="post-time" title="2018-04-20 18:11:27" datetime="2018-04-20T10:11:27.000Z"  itemprop="datePublished">2018-04-20</time>

            


            
<span id="busuanzi_container_page_pv" title="文章总阅读量" style='display:none'>
    <i class="icon icon-eye icon-pr"></i><span id="busuanzi_value_page_pv"></span>
</span>


        </div>
        <div class="post-content" id="post-content" itemprop="postContent">
            <p>一直以来都在用 nvm 来管理我的 node 的版本，然而，最近在尝试入坑快应用时，使用 <code>npm install -g hap-toolkit</code> 安装快应用脚手架，接着查看版本号检测是否安装成功，输入 <code>hap -V</code> ，结果显示： <code>&#39;hap&#39; 不是内部或外部命令，也不是可运行的程序或批处理文件。</code>但进到 <code>hap-toolkit</code> 目录下运行 <code>hap -V</code> ，结果正常，想着应该是环境变量没配好，就试了一下安装别的工具，果然也出现同样的问题，捣鼓了一番环境变量，还是不行。最后决定卸载nvm重新安装，于是便开始了 nvm 的安装填坑之路。此文旨在记录本人安装 nvm 的过程以及在安装过程中遇到的一点小问题。</p>
<h2 id="nvm的作用"><a href="#nvm的作用" class="headerlink" title="nvm的作用"></a>nvm的作用</h2><p>nvm 是 node 的版本管理工具，它能帮助你快速安装并切换使用node的版本，为什么要切换node的版本？因为各种工具使用的 node 版本可能不一致，就会出现一些奇怪的问题。比如：快应用，就需要安装6.0以上版本，官方推荐使用的是 node v6.11.3，还强调不要使用8.0.*版本，因为这个版本内部 ZipStream 实现与 node-archive 包不兼容，会引起报错。也就是说，我们在平常工作中经常会碰到使用不同 node 版本，而每次切换版本挺麻烦还耗时，你要先卸载掉当前已经安装使用的 node 版本，然后重新下载安装需要的那个版本，这个过程是繁琐的；而且为了某些功能而去反复卸载下载安装不同的 node 版本，这是非常不划算的，nvm 就是专门解决这个问题的工具。</p>
<h2 id="nvm的下载安装"><a href="#nvm的下载安装" class="headerlink" title="nvm的下载安装"></a>nvm的下载安装</h2><p>1.下载地址：<a href="https://github.com/coreybutler/nvm-windows/releases" target="_blank" rel="noopener">nvm的下载地址</a>（如果你已经单独安装了node，建议先卸载）。<br>2.我选择的是1.1.5版本里 <code>nvm-setup.zip</code> 这个安装包。<br>3.解压后双击安装，此处注意以下两点：  </p>
<img src="/20180420/nvm-install/1.png" title="This is an example image">  
<p>在选择安装目录这一步的时候我选的是默认路径，记住这一步骤的路径，因为之后使用nvm安装的 node 版本都会存放在该目录下，安装完后里面有个 settings.txt 文件，之后配置环境变量的时候有用。  </p>
<img src="/20180420/nvm-install/2.png" title="This is an example image">  
<p>接着到 <code>Set Node.js Symlink</code> 这一步，这里的目录是之后 <code>nvm use</code> 你使用的那个 node 版本程序的存放目录。我这里选的是 <code>C:\dev\nodejs</code> 。其他步骤都按默认的走，一路next直到安装完成。  </p>
<p>4.打开命令行窗口<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">nvm v   // 查看nvm版本 1.1.5</span><br><span class="line">nvm install latest  // 下载node最新版 v9.11.1</span><br><span class="line">nvm install 8.11.1  // 下载node稳定版 v8.11.1</span><br><span class="line">nvm install 6.11.3  // 下载指定版本</span><br></pre></td></tr></table></figure></p>
<p>下载对应的 node 版本后会在 nvm 的安装目录下生成对应的版本文件夹（即上述所说的 <code>C:\Users\ab052479\AppData\Roaming\nvm</code>），在命令行输入 <code>nvm list</code> 可以看到下载的 node 版本及当前使用的版本是 6.11.3 ，再输入 <code>nvm use 8.11.1</code> 切换使用 node v8.11.1 版本，此时再 <code>nvm list</code> 可以看到当前使用的版本已经变成 8.11.1 。这时就会在 <code>C:\dev</code> 的目录出现个 nodejs 文件夹的快捷方式。  </p>
<img src="/20180420/nvm-install/4.png" title="This is an example image">  
<h2 id="npm的全局安装路径配置"><a href="#npm的全局安装路径配置" class="headerlink" title="npm的全局安装路径配置"></a>npm的全局安装路径配置</h2><p>执行命令:  </p>
<pre><code>npm config set prefix &quot;C:\dev\node\npm-global&quot;
</code></pre><p>C:\Users\你的用户名\ 会生成个 .npmrc 文件，内容如下：<br><code>prefix=C:\dev\node\npm-global</code><br>这时候再去安装全局的东西，比如 <code>npm install -g hap-toolkit</code> ，所有全局的包都会出现在 <code>C:\dev\node\npm-global\node_modules</code> 目录中。  </p>
<h2 id="环境变量的配置"><a href="#环境变量的配置" class="headerlink" title="环境变量的配置"></a>环境变量的配置</h2><p>打开环境变量配置窗口的路径：此电脑右键 → 属性 → 高级系统设置 → 环境变量。  </p>
<img src="/20180420/nvm-install/5.png" title="This is an example image">
<ul>
<li>用户变量<br><code>NVM_HOME</code> 的值设成 <code>C:\dev\node\npm-global</code> ， <code>NVM_SYMLINK</code> 的值设成 <code>C:\dev\nodejs</code>, <code>path</code> 需要有 <code>%NVM_HOME%</code> 和 <code>%NVM_SYMLINK%</code> 。  </li>
</ul>
<img src="/20180420/nvm-install/6.png" title="This is an example image">
<ul>
<li>系统变量<br><code>NVM_HOME</code> 的值设成 <code>C:\dev\node\npm-global</code> ， <code>NVM_SYMLINK</code> 的值设成 <code>C:\dev\nodejs</code>, <code>path</code> 需要有 <code>%NVM_HOME%</code> 和 <code>%NVM_SYMLINK%</code> 。<br>在 <code>path</code>的最后再配上一条 <code>C:\Users\ab052479\AppData\Roaming\nvm</code> ，这样就可以全局使用 nvm 了。<br>然而，当我在D盘某个项目里打开命令行使用 nvm 操作时，报错了：<br><code>ERROR open C:\dev\node\npm-global\settings.txt: The system cannot find the file specified.</code><br>不过别慌，人家已经给你报出是什么原因了：该路径下找不到 settings.txt 这个文件。<br>这时，你只需要去 nvm 的安装路径 <code>C:\Users\ab052479\AppData\Roaming\nvm</code> 下把 settings.txt 文件复制到 <code>C:\dev\node\npm-global</code> 就行了（记得关掉命令行窗口重新开一个再试）。  </li>
</ul>
<img src="/20180420/nvm-install/7.png" title="This is an example image">
        </div>

        <blockquote class="post-copyright">
    
    <div class="content">
        
<span class="post-time">
    最后更新时间：<time datetime="2018-04-24T03:19:53.766Z" itemprop="dateUpdated">2018-04-24 11:19:53</time>
</span><br>


        
        原始文章链接：<a href="/20180420/nvm-install.html" target="_blank" rel="external">https://mayner.github.io/20180420/nvm-install.html</a>
        
    </div>
    
    <footer>
        <a href="https://mayner.github.io">
            <img src="/img/avatar.jpg" alt="Mayner">
            Mayner
        </a>
    </footer>
</blockquote>

        


        <div class="post-footer">
            
	<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/node-js/">node.js</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/nvm/">nvm</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/win10/">win10</a></li></ul>


            
<div class="page-share-wrap">
    

<div class="page-share" id="pageShare">
    <ul class="reset share-icons">
      <li>
        <a class="weibo share-sns" target="_blank" href="http://service.weibo.com/share/share.php?url=https://mayner.github.io/20180420/nvm-install.html&title=《nvm安装总结》 — Mayner's Blog&pic=https://mayner.github.io/img/avatar.jpg" data-title="微博">
          <i class="icon icon-weibo"></i>
        </a>
      </li>
      <li>
        <a class="weixin share-sns wxFab" href="javascript:;" data-title="微信">
          <i class="icon icon-weixin"></i>
        </a>
      </li>
      <li>
        <a class="qq share-sns" target="_blank" href="http://connect.qq.com/widget/shareqq/index.html?url=https://mayner.github.io/20180420/nvm-install.html&title=《nvm安装总结》 — Mayner's Blog&source=个人博客" data-title=" QQ">
          <i class="icon icon-qq"></i>
        </a>
      </li>
      <li>
        <a class="facebook share-sns" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://mayner.github.io/20180420/nvm-install.html" data-title=" Facebook">
          <i class="icon icon-facebook"></i>
        </a>
      </li>
      <li>
        <a class="twitter share-sns" target="_blank" href="https://twitter.com/intent/tweet?text=《nvm安装总结》 — Mayner's Blog&url=https://mayner.github.io/20180420/nvm-install.html&via=https://mayner.github.io" data-title=" Twitter">
          <i class="icon icon-twitter"></i>
        </a>
      </li>
      <li>
        <a class="google share-sns" target="_blank" href="https://plus.google.com/share?url=https://mayner.github.io/20180420/nvm-install.html" data-title=" Google+">
          <i class="icon icon-google-plus"></i>
        </a>
      </li>
    </ul>
 </div>



    <a href="javascript:;" id="shareFab" class="page-share-fab waves-effect waves-circle">
        <i class="icon icon-share-alt icon-lg"></i>
    </a>
</div>



        </div>
    </div>

    


    

















</article>



</div>

        <footer class="footer">
    <div class="top">
        
<p>
    <span id="busuanzi_container_site_uv" style='display:none'>
        总访客数：<span id="busuanzi_value_site_uv"></span>
    </span>
    <span id="busuanzi_container_site_pv" style='display:none'>
        总访问量：<span id="busuanzi_value_site_pv"></span>
    </span>
</p>


        <p>
            
                <span><a href="/atom.xml" target="_blank" class="rss" title="RSS"><i class="icon icon-lg icon-rss"></i></a></span>
            
            <!-- <span>博客内容遵循 <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh">知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议</a></span> -->
            <span>Mayner &copy; 2018</span>
            <span>
                
                <a href="http://www.miibeian.gov.cn/" target="_blank">京ICP备18027737号-1</a>
                
            </span>
        </p>
        <div style="width:210px;margin:0 auto; padding:5px 0;">
            <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502035758" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="/img/gongan-icon.png" style="float:left;"/><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px;">京公网安备 11010502035758号</p></a>
        </div>
    </div>
    <!-- <div class="bottom">
        <p><span>Mayner &copy; 2018</span>
            <span>
                
                <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备18027737号-1</a><br>
                
                Power by <a href="http://hexo.io/" target="_blank">Hexo</a> Theme <a href="https://github.com/yscoder/hexo-theme-indigo" target="_blank">indigo</a>
            </span>
        </p>
    </div> -->
</footer>

    </main>
    <div class="mask" id="mask"></div>
<a href="javascript:;" id="gotop" class="waves-effect waves-circle waves-light"><span class="icon icon-lg icon-chevron-up"></span></a>



<div class="global-share" id="globalShare">
    <ul class="reset share-icons">
      <li>
        <a class="weibo share-sns" target="_blank" href="http://service.weibo.com/share/share.php?url=https://mayner.github.io/20180420/nvm-install.html&title=《nvm安装总结》 — Mayner's Blog&pic=https://mayner.github.io/img/avatar.jpg" data-title="微博">
          <i class="icon icon-weibo"></i>
        </a>
      </li>
      <li>
        <a class="weixin share-sns wxFab" href="javascript:;" data-title="微信">
          <i class="icon icon-weixin"></i>
        </a>
      </li>
      <li>
        <a class="qq share-sns" target="_blank" href="http://connect.qq.com/widget/shareqq/index.html?url=https://mayner.github.io/20180420/nvm-install.html&title=《nvm安装总结》 — Mayner's Blog&source=个人博客" data-title=" QQ">
          <i class="icon icon-qq"></i>
        </a>
      </li>
      <li>
        <a class="facebook share-sns" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://mayner.github.io/20180420/nvm-install.html" data-title=" Facebook">
          <i class="icon icon-facebook"></i>
        </a>
      </li>
      <li>
        <a class="twitter share-sns" target="_blank" href="https://twitter.com/intent/tweet?text=《nvm安装总结》 — Mayner's Blog&url=https://mayner.github.io/20180420/nvm-install.html&via=https://mayner.github.io" data-title=" Twitter">
          <i class="icon icon-twitter"></i>
        </a>
      </li>
      <li>
        <a class="google share-sns" target="_blank" href="https://plus.google.com/share?url=https://mayner.github.io/20180420/nvm-install.html" data-title=" Google+">
          <i class="icon icon-google-plus"></i>
        </a>
      </li>
    </ul>
 </div>


<div class="page-modal wx-share" id="wxShare">
    <a class="close" href="javascript:;"><i class="icon icon-close"></i></a>
    <p>扫一扫，分享到微信</p>
    <img src="" alt="微信分享二维码">
</div>




    <script src="//cdn.bootcss.com/node-waves/0.7.4/waves.min.js"></script>
<script>
var BLOG = { ROOT: '/', SHARE: true, REWARD: false };


</script>

<script src="//unpkg.com/hexo-theme-material-indigo@latest/js/main.min.js"></script>


<div class="search-panel" id="search-panel">
    <ul class="search-result" id="search-result"></ul>
</div>
<template id="search-tpl">
<li class="item">
    <a href="{path}" class="waves-block waves-effect">
        <div class="title ellipsis" title="{title}">{title}</div>
        <div class="flex-row flex-middle">
            <div class="tags ellipsis">
                {tags}
            </div>
            <time class="flex-col time">{date}</time>
        </div>
    </a>
</li>
</template>

<script src="//unpkg.com/hexo-theme-material-indigo@latest/js/search.min.js" async></script>






<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>



<script>
(function() {
    var OriginTitile = document.title, titleTime;
    document.addEventListener('visibilitychange', function() {
        if (document.hidden) {
            document.title = 'o(╥﹏╥)o 不要抛弃我~';
            clearTimeout(titleTime);
        } else {
            document.title = 'o(∩_∩)o 咦！回来了~';
            titleTime = setTimeout(function() {
                document.title = OriginTitile;
            },2000);
        }
    });
})();
</script>



</body>
</html>
